package Data::Domain::Net;

use strict;
use warnings;
use Data::Domain::SemanticAdapter;


our $VERSION = '0.01';


use base 'Exporter';


our %map = (
    IPv4 => 'Net::IPAddress::IPv4',
    IPv6 => 'Net::IPAddress::IPv6',
);


our %EXPORT_TAGS = (
    util => [ keys %map ],
);


our @EXPORT_OK = @{ $EXPORT_TAGS{all} = [ map { @$_ } values %EXPORT_TAGS ] };


Data::Domain::SemanticAdapter::install_shortcuts(%map);


1;


__END__

{% USE p = PodGenerated %}

=head1 NAME

{% p.package %} - Data domain classes for IP addresses

=head1 SYNOPSIS

    {% p.package %}->new;

=head1 DESCRIPTION

The classes in this distribution are data domain classes for these IP address
types:

=over 4

=item IPv4

See L<Data::Domain::Net::IPAddress::IPv4>.

=item IPv6

See L<Data::Domain::Net::IPAddress::IPv6>.

=back

Besides defining the methods described below, this class also exports, on
request, these functions:

=over 4

=item IPv4

A shortcut for creating a L<Data::Domain::Net::IPAddress::IPv4> object.
Arguments are passed on to the object's constructor.

=item IPv6

A shortcut for creating a L<Data::Domain::Net::IPAddress::IPv6> object.
Arguments are passed on to the object's constructor.

=back

By using the C<:all> tag, you can import all of them.

{% p.write_inheritance %}

=head1 METHODS

=over 4

{% p.write_methods %}

=back

{% PROCESS standard_pod %}

=cut

